pull: When --depth is specified, ensure we have all requested objects
authorColin Walters <walters@verbum.org>
Thu, 26 Jul 2012 14:17:41 +0000 (10:17 -0400)
committerColin Walters <walters@verbum.org>
Thu, 26 Jul 2012 14:17:41 +0000 (10:17 -0400)
We were previously optimizing by skipping object traversal if the refs
were unchanged, but if the user specifies a deeper depth than they did
before.

src/ostree/ostree-pull.c

index d1cc5ee3ebfb2a2e3a797ad0ef3b8be232d2a655..2d745f1fba1cf8be147f257e488070417ea8dccd 100644 (file)
@@ -1602,7 +1602,11 @@ ostree_builtin_pull (int argc, char **argv, GFile *repo_path, GError **error)
       if (!ostree_repo_resolve_rev (pull_data->repo, remote_ref, TRUE, &original_rev, error))
         goto out;
 
-      if (original_rev && strcmp (sha256, original_rev) == 0)
+      /* Only skip traversal if depth == 0; otherwise, we have to
+       * handle the case where the user specified a bigger depth than
+       * they originally did.
+       */
+      if (original_rev && strcmp (sha256, original_rev) == 0 && opt_depth == 0)
         {
           g_print ("No changes in %s\n", remote_ref);
         }